-
Notifications
You must be signed in to change notification settings - Fork 191
Fix issue with some terminal that might not properly support kitty #920
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…tyProtocolGuard is initialized
b8fd027 to
8c62a31
Compare
sholderbach
approved these changes
Oct 23, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks that sounds good!
Could also potentially reduce the bandwidth on the terminals that deal with it well.
benvansleen
added a commit
to benvansleen/reedline
that referenced
this pull request
Oct 26, 2025
* fix: prompt glitch when resizing with cursor in a multiline command (nushell#898) * fix: prompt glitch when resizing with cursor in a multiline command * fix: considering line wraps * fix: clippy * Bump version to `0.41.0` (nushell#936) * Protect against invalid suggestion spans (nushell#915) * Protect against invalid suggestion spans * Protect against start > end * feat: Builder option to immediately accept input (nushell#933) * feat: Option to immediately accept input * chore: PR feedback * feat: add `ViChangeMode` event (nushell#932) * feat: add `ViChangeMode` event * fix: use `FromStr` trait * fix: undo unused change * fix: clippy * Fix `mismatched_lifetime_syntaxes` (nushell#947) From Rust 1.89.0 on this lints. https://blog.rust-lang.org/2025/08/07/Rust-1.89.0/#mismatched-lifetime-syntaxes-lint * Fix missing import in README.md (nushell#942) Co-authored-by: sholderbach <[email protected]> * fix: dislocation of cursor after previous_history navigation to a multiline entry (nushell#899) * bumping version to 42 (nushell#949) Co-authored-by: Jack Wright <[email protected]> * Bump `rusqlite` to 0.37 (nushell#950) * feat: make columnar menu traversal direction configurable (nushell#951) * Make columnar menu traversal direction configurable * Add tests for columnar menu selection position updates * Apply changes based on review * Upgrade GitHub Actions and Rust toolchain versions (nushell#954) * Upgrade GitHub Actions and Rust toolchain versions * Update .github/workflows/ci.yml * Vi mode text objects for word, WORD, brackets and quotes (nushell#939) * Addd initial change inner and around word text objects and handle whitespace Note a buffer full of whitespace is not properly considered and still causing incorrect behaviour. TODO fix this. * Renaming functions and fix default value of current_whitespace_range_start * Rename cut/yank inside enums and methods to cut/yank inside pair and add general yank/cut range methods * Use TextObject enum instead of passing through the character * WIP: Add quote and bracket text objects and add jumping if not inside objects * Add my own methods for finding matching pair and jumping * Fix bugs in new function to get matching pair range and it's finish features - Now handles jumps to next open/close or equal symbol pairs if not in a pair already - Searching only on current line for equal symbol pairs e.g. quotes - Correctly handles graphemes * Simplify heirarchy of pair range finding functions - Refactor the structure of the methods to get ranges, don't need to pass in depth unecessarily, high level functions don't require cursor passed in. - Now two seperate functions for ranges, one "next" and one "current" range that gets you either the range inside next text object or inside current one depending on position of cursor. - Finilise logic to correctly handle graphemes (not byte sized chars) TODO Update unit tests * Refactoring range functions and tidy up/extend unit test cases and coverage * More refactoring - Improve some text object ranges to use iterators rather than complex logic - Clean up documentation, add consts etc - Look through and refactor some editor functions * Move text object range methods into line_buffer from editor * Combine line_buffer quote and pair text object functions into generic and rewrite a lot of doc strings * Testing for quote and bracket text object functions in editor.rs * Whitespace * Rework unit tests for new function structure * Remove angle brackets from b text object * Rename yank text object functions to copy * Add bracket test cases to range_inside_next_pair_in_group unit tests * Add more detailed unicode safety tests * Fix display enum string for renamed enums * Unicode and overflow/underflow safety when expanding text object ranges * Pass through matching pair group const for quote and bracket text object functions * Rename yank_range -> copy_range for consistency with other methods * Remove unecessary guard clause from expand_range_to_include_pair * Correct display string for CutInsidePair * Make text object types public (nushell#957) * Make TextObject, TextObjectScope and TextObjectType public * Correct CopyInsidePair and CopyAroundPair EditType to NoOp * fix: dislocation of cursor during history navigation (nushell#959) * fix: dislocation of cursor during history navigation * test: new test case by Claude Sonnet * simplify * Fix typos (nushell#962) * Bump version for `0.43.0` release (nushell#961) * Fix shift selection in vi (insert) & emacs mode (nushell#927) * Add match_indices field to Suggestion (nushell#798) * Add match_indices field to Suggestion Make columnar_menu use match indices Make ide menu use match indices Add fuzzy completions example Test style_suggestion Make doctests in default.rs pass Highlight entire graphemes Extract ANSI escapes from strings to apply match highlighting Fix clippy lint for fuzzy completion example Shut the typo checker up Use existing variable `escape` Copy regex from parse-ansi crate * replace LazyLock with lazy_static that works with Rust 1.63.0 (#2) * Homegrown ANSI parser Fix padding for columnar menu Highlight substring matches too by default Simplify (?) columnar menu * Fix clippy lints after rebase * Use get_match_indices helper * Stop using 'fo' because it's a typo? Fo shizzle. * Use to_string() instead of as_str() * Style entire suggestion same color * RESET after suggestion --------- Co-authored-by: Divanshu Grover <[email protected]> * fix bashism parsing (nushell#958) * refactor: use crossterm `supports_keyboard_enhancement` once when KittyProtocolGuard is initialized (nushell#920) Co-authored-by: Pierre POLLET <[email protected]> --------- Co-authored-by: zc he <[email protected]> Co-authored-by: Stefan Holderbach <[email protected]> Co-authored-by: Yash Thakur <[email protected]> Co-authored-by: Stuart Carnie <[email protected]> Co-authored-by: Daniel Bonofiglio <[email protected]> Co-authored-by: Daniel del Castillo <[email protected]> Co-authored-by: Jack Wright <[email protected]> Co-authored-by: Jack Wright <[email protected]> Co-authored-by: Piepmatz <[email protected]> Co-authored-by: simonborje <[email protected]> Co-authored-by: Darren Schroeder <[email protected]> Co-authored-by: JonLD <[email protected]> Co-authored-by: Collin Murch <[email protected]> Co-authored-by: Divanshu Grover <[email protected]> Co-authored-by: migraine-user <[email protected]> Co-authored-by: PtiBouchon <[email protected]> Co-authored-by: Pierre POLLET <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reason
On terminal like Alacritty, Rioterm and Ghostty that "kind of support" kitty protocol (but maybe not perfectly ?), the side-effect of
supports_keyboard_enhancementseems to cause some issues when some characters are printed on linux (cf. nushell/nushell#13570 (comment))Using
kitty_protocol_availableonly once when the struct is initialized would solve the issue and I think is a bit better to do.Alternative
use a a static
std::sync::Onceinstead ?